<!DOCTYPE html>
<html lang="it">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		<h1>Costanti dei Materiali</h1>

		<p class="desc">
      Queste costanti definiscono proprietà comuni per tutti i tipi di materiali,
      ad eccezione di Texture Combine Operations che si applicano 
      solo ai materiali [page:MeshBasicMaterial.combine MeshBasicMaterial], 
      [page:MeshLambertMaterial.combine MeshLambertMaterial] e [page:MeshPhongMaterial.combine MeshPhongMaterial].<br />
		</p>


		<h2>Lato (Side)</h2>
		<code>
		THREE.FrontSide
		THREE.BackSide
		THREE.DoubleSide
		THREE.TwoPassDoubleSide
		</code>
		<p>
      Definisce quale lato delle facce sarà visualizzato - frontale, retro o entrambi.
      Il valore predefinito è [page:Constant FrontSide].
		</p>
		<p>
		[page:Materials TwoPassDoubleSide] will renderer double-sided transparent materials in two passes in back-front order to mitigate transparency artifacts.
		</p>

		<h2>Modalità Blending</h2>
		<code>
		THREE.NoBlending
		THREE.NormalBlending
		THREE.AdditiveBlending
		THREE.SubtractiveBlending
		THREE.MultiplyBlending
		THREE.CustomBlending
		</code>


		<p>
      Controllano le equazioni di blending di origine e di destinazione per RGB e Alpha del materiale, inviate a WebGLRenderer 
      per l'uso da parte di WebGL.<br />
      [page:Constant NormalBlending] è l'impostazione predefinita.<br />
      Si noti che [page:Constant CustomBlending] deve essere impostato per utilizzare le equazioni di blending personalizzate.<br />
      Vedi l'esempio [example:webgl_materials_blending materials / blending].<br />
		</p>

		<h2>Modalità Depth</h2>
		<code>
		THREE.NeverDepth
		THREE.AlwaysDepth
		THREE.EqualDepth
		THREE.LessDepth
		THREE.LessEqualDepth
		THREE.GreaterEqualDepth
		THREE.GreaterDepth
		THREE.NotEqualDepth
		</code>
		<p>
      La funzione di profondità (depth) utilizza il materiale per confrontare la Z-depth dei pixel in arrivo
      con il valore del buffer della Z-depth. Se il risultato del confronto è vero, il pixel viene disegnato.
      [page:Materials NeverDepth] non tornerà mai vero.<br />
      [page:Materials AlwaysDepth] tornerà sempre vero.<br />
      [page:Materials EqualDepth] tornerà vero se lo Z-depth dei pixel in ingresso è uguale all'attuale buffer Z-depth.<br />
      [page:Materials LessDepth] tornerà vero se lo Z-depth dei pixel in ingresso è minore dell'attuale buffer Z-depth.<br />
      [page:Materials LessEqualDepth] è il valore predefinito e ritornerà vero se lo Z-depth dei pixel in ingresso è minore o uguale dell'attuale buffer Z-depth.<br />
      [page:Materials GreaterEqualDepth] tornerà vero se lo Z-depth dei pixel in ingresso è maggiore o uguale dell'attuale buffer Z-depth.<br />
      [page:Materials GreaterDepth] tornerà vero se lo Z-depth dei pixel in ingresso è maggiore dell'attuale buffer Z-depth.<br />
      [page:Materials NotEqualDepth]tornerà vero se lo Z-depth dei pixel in ingresso è maggiore non è uguale all'attuale buffer Z-depth.<br />
		</p>

		<h2>Texture Combine Operations</h2>
		<code>
		THREE.MultiplyOperation
		THREE.MixOperation
		THREE.AddOperation
		</code>
		<p>
      Definiscono come il risultato del colore della supercificie viene combinato con la mappa ambientale (se presente), 
      per i materiali [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] 
      e [page:MeshPhongMaterial.combine MeshPhongMaterial]. <br />
      [page:Constant MultiplyOperation] è l'impostazione predefinita e moltiplica la mappa di colore dell'ambiente con il colore della superficie.<br />
      [page:Constant MixOperation] utilizza la riflettività per miscelare i due colori.<br />
      [page:Constant AddOperation] aggiunge i due colori.
		</p>

		<h2>Funzioni di Stencil</h2>
		<code>
		THREE.NeverStencilFunc
		THREE.LessStencilFunc
		THREE.EqualStencilFunc
		THREE.LessEqualStencilFunc
		THREE.GreaterStencilFunc
		THREE.NotEqualStencilFunc
		THREE.GreaterEqualStencilFunc
		THREE.AlwaysStencilFunc
		</code>
		<p>
      Quale funzione di stencil utilizza il meteriale per determinare se eseguire o meno un'operazione di stencil.<br />
      [page:Materials NeverStencilFunc] non tornerà mai vero.<br />
      [page:Materials LessStencilFunc] tornerà vero se il valore di riferimento dello stencil è inferiore al valore dello stencil corrente.<br />
      [page:Materials EqualStencilFunc] tornerà vero se il valore di riferimento dello stencil è ugale al valore dello stencil corrente.<br />
      [page:Materials LessEqualStencilFunc] tornerà vero se il valore di riferimento dello stencil è minore o uguale al valore dello stencil corrente.<br />
      [page:Materials GreaterStencilFunc] tornerà vero se il valore di riferimento dello stencil è maggiore al valore dello stencil corrente.<br />
      [page:Materials NotEqualStencilFunc] tornerà vero se il valore di riferimento dello stencil non è uguale al valore dello stencil corrente.<br />
      [page:Materials GreaterEqualStencilFunc] tornerà vero se il valore di riferimento dello stencil è maggiore o uguale al valore dello stencil corrente.<br />
      [page:Materials AlwaysStencilFunc] tornerà sempre vero.<br />
		</p>

		<h2>Operazioni di Stencil</h2>
		<code>
		THREE.ZeroStencilOp
		THREE.KeepStencilOp
		THREE.ReplaceStencilOp
		THREE.IncrementStencilOp
		THREE.DecrementStencilOp
		THREE.IncrementWrapStencilOp
		THREE.DecrementWrapStencilOp
		THREE.InvertStencilOp
		</code>
		<p>
      Quale operazione di stencil eseguirà il materiale sul pixel del buffer di stencil se la funzione stencil fornita passa.<br />
      [page:Materials ZeroStencilOp] imposterà il valore dello stencil a 0.<br />
      [page:Materials KeepStencilOp] non cambierà il valore corrente dello stencil.<br />
      [page:Materials ReplaceStencilOp] sostituirà il valore dello stencil con il valore di riferimento dello stencil specificato.<br />
      [page:Materials IncrementStencilOp] incrementerà il valore corrente dello stencil di `1`.<br />
      [page:Materials DecrementStencilOp] decrementerà il valore corrente dello stencil di `1`.<br />
      [page:Materials IncrementWrapStencilOp] incrementerà il valore corrente dello stencil di `1`. Se il valore aumenta oltre 255, verrà impostato su `0`.<br />
      [page:Materials DecrementWrapStencilOp] incrementerà il valore corrente dello stencil di `1`. Se il valore diminusice al di sotto di `0` verrà impostato a `255`.<br />
      [page:Materials InvertStencilOp] eseguirà un'inversione di bit del valore dello stencil corrente.<br />
		</p>

		<h2>Tipo Normal map</h2>
		<code>
		THREE.TangentSpaceNormalMap
		THREE.ObjectSpaceNormalMap
		</code>
		<p>
      Definisce il tipo di mappa normale.
      Per TangentSpaceNormalMap, le informazioni sono relative alla superficie sottostante.
      Per ObjectSpaceNormalMap, le informazioni sono relative all'oggetto sottostante.
      Il valore di default è [page:Constant TangentSpaceNormalMap].
		</p>

		<h2>GLSL Version</h2>
		<code>
		THREE.GLSL1
		THREE.GLSL3
		</code>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
		</p>
	</body>
</html>
